import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../components/Login.vue'
import Home from '../components/Home.vue'
import Welcome from '../components/Welcome.vue'
import Users from '../components/user/Users.vue'
import Rights from '../components/power/Rights.vue'
import Roles from '../components/power/Roles.vue'
import Cate from '../components/goods/Cate.vue'
import Params from '../components/goods/Params.vue'
import GoodsList from '../components/goods/List.vue'
import Add from '../components/goods/Add.vue'
import Order from '../components/order/Order.vue'
import Report from '../components/report/Report.vue'

Vue.use(VueRouter)

const routes = [
  {
    path:'/',redirect:'/login'
  },
{
  path:'/login',component:Login
},
{
  path:'/home',component:Home,
  // 只要访问了home，就重定向到welcome
  redirect:'/welcome',
  children:[
    {path:'/welcome',component:Welcome},
    {path:'/users',component:Users},
    {path:'/rights',component:Rights},
    {path:'/roles',component:Roles},
    {path:'/categories',component:Cate},
    {path:'/params',component:Params},
    {path:'/goods',component:GoodsList},
    {path:'/goods/add',component:Add},
    {path:'/orders',component:Order},
    {path:'/reports',component:Report}
  ]
}
]


const router = new VueRouter({
routes
})

//路由导航守卫控制访问权限:如果用户没有登陆但是直接通过url访问特定页面,需要重新导航到登录页:
//  为路由对象添加beforeEach导航守卫
// 挂载路由导航守卫
  // to 将要访问的路径
  // from 代表从哪个路径跳转而来
  // next 放行函数  next()放行  next('/login')强行跳转
  router.beforeEach((to,from,next)=>{
    //  如果用户访问登录页,直接放行
    if(to.path==='/login') return next()
    //  从sessionStorage中获取到保存的 token值
    const tokenStr=window.sessionStorage.getItem('token')
    //  没有token,强制跳转到登录页
    if(!tokenStr) return next('/login')
    next()
  })

export default router